//designpatterns.interpreter.ActionNode.java
package org.patterns.behavior.interpreter;

/**
 * ActionNode类继承自AbstractNode，用于表示一个动作节点
 * 动作解释：终结符表达式
 */
public class ActionNode extends AbstractNode {
    // 动作指令字符串
    private String action;

    /**
     * 构造函数，初始化动作指令
     *
     * @param action 动作指令字符串
     */
    public ActionNode(String action) {
        this.action = action;
    }

    /**
     * 动作（移动方式）表达式的解释操作
     * 根据输入的动作指令，返回相应的动作描述如果指令是"move"，则返回"移动"；
     * 如果指令是"run"，则返回"快速移动"；否则返回"无效指令"
     *
     * @return 动作描述字符串
     */
    public String interpret() {
        if (action.equalsIgnoreCase("move")) {
            return "移动";
        } else if (action.equalsIgnoreCase("run")) {
            return "快速移动";
        } else {
            return "无效指令";
        }
    }
}

